Distributed processing systems typically offer a pool of processing resources that are allocable to processing jobs, which may be defined as a defined digital processing task or as a set of associated digital processing tasks. As a non-limiting example, telecommunication systems often treat each subscriber's connection as a job, or as related set of jobs, such as call control processing, communication signal processing, etc. Consequently, telecommunications equipment often includes multiple sets of processing cards. Each set may be of a different type or may otherwise be tailored to perform certain specific job types associated with supporting the connections of potentially many subscribers.
As a working example, a mobile network node for use in a wireless communication network includes a number of “Service Cards” or SCs that provide control plane processing for mobile subscribers. In a known implementation, the node uses a Distributed Control Processing (DCP) scheme to process the potentially heavy signalling load generated from many, concurrently active subscribers. For example, the maximum number of subscribers supported by the node is proportional to the number of SCs configured in it. Such nodes often adopt a chassis-based architecture that allows for the installation of a greater or fewer number of processing cards, to tailor the processing capacity as desired.
Load balancing may be used with such arrangements of processing cards, wherein the node distributes the overall processing load associated with the currently active subscribers across all of the installed cards. Known load-balancing schemes include round-robin and random hashing techniques. With the former technique, the allocation of processing jobs follows a round-robin scheme wherein successive new jobs or batches of jobs are allocated to successive ones of the installed cards, going from the first card to the last and then looping back around. In the latter technique, new jobs are distributed uniformly across the installed set of cards, using a random hashing technique.
Both approaches result in a general distribution of currently-active processing jobs across all installed cards, and such systems generally provide for the re-allocation of processing jobs from a failed card to one or more of the remaining cards. The re-allocation process may work at varying levels of granularity, meaning that some approaches to re-allocating jobs from a failed card work at the jobs level, while other approaches re-allocate batches or groups of jobs.
Regardless, conventional load balancing and distribution approaches have a number of disadvantages. For example, allocations have to be rebalanced when new cards are added. If random hashing is used for load balancing, redistribution becomes non-deterministic. Further, such approaches generally use all installed cards, meaning that overall power consumption is not well-proportioned with respect to overall processing load.